package com.szrt.day20161027.zhongji.dao.impl;


import java.sql.Connection;
import java.sql.Statement;

import com.szrt.day20161027.utils.JDBCUtil;
import com.szrt.day20161027.zhongji.dao.StudentDao;
import com.szrt.day20161027.zhongji.entity.StudentEntity;


/**
 * 
 * 
 * 1:  读取配置文件： jdbc.properties 用来填充 写死的代码
 * 			1.1  ? 抽成1个工具类  Properties  先左手按CTRL不动 再右手按H  
 * 
 * 2：   抽象  泛型   BaseDao  伪高手
 * 
 * 3：   反射     高手
 * 
 * 4： 所有的东西只需要写SQL就行
 * 
 * StudentDaoImpl  和  TeacherDaoImpl 都一定要写的东西  如何优化?
 * StudentDao   TeacherDao  增加  删除  都要有父亲  让父亲去做  必须用泛型
 * BaseDao
 * 
 * 
 * BaseDaoImpl  在这里里面做 去连接数据库..
 *
 */
public class StudentDaoImpl implements StudentDao {
	
	private static Connection connection;
	
	static{
		try{
			connection = JDBCUtil.getConnection();
		}catch(Exception e){
			System.out.println(e);
		}
	}
	
	@Override
	public int delete(int id) throws Exception {
		//1 获得连接
		//Connection connection = JDBCUtil.getConnection();
		
		//2 得到删除的语句 executeUpdate  新手最容易犯错的地方：mysql 后面的分号一定不能要
		Statement statement = connection.createStatement();
		
		
		// 1 先删除   2 写2个双引号  3 写2个+ 
		String sql ="delete from oa_student_t where ID="+id;
		System.out.println(sql);
		
		//3 返回的影响的记录的条数
		int counter = statement.executeUpdate(sql);
		System.out.println("操作成功....");
		System.out.println(counter);
		// 知识点： 关闭时有顺序的? 先开后关   举例： 来 先开门 再开电脑  走  先关电脑  再关门
		statement.close();
		connection.close();
		return counter;
	}
	
	
	
	@Override
	public int add(StudentEntity entity) throws Exception {
		
		//1 获得连接
		//Connection connection = JDBCUtil.getConnection();
		
		//2 得到删除的语句 executeUpdate  新手最容易犯错的地方：mysql 后面的分号一定不能要
		Statement statement = connection.createStatement();
		
		int id = entity.getId();
		int studentAge = entity.getStudentAge();
		String studentName = entity.getStudentName();
		
		// 1 先删除   2 写2个双引号  3 写2个+ 
		String sql ="insert into oa_student_t(ID,STUDENT_AGE,STUDENT_NAME) values("+id+","+studentAge+",'"+studentName+"')";
		//String sql ="insert into oa_student_t(ID,STUDENT_AGE,STUDENT_NAME) values("+id+","+studentAge+",'"+studentName+"')";
		System.out.println(sql);
		
		//3 返回的影响的记录的条数
		int counter = statement.executeUpdate(sql);
		System.out.println(counter);
		System.out.println("操作成功....");
		// 知识点： 关闭时有顺序的? 先开后关   举例： 来 先开门 再开电脑  走  先关电脑  再关门
		statement.close();
		connection.close();
		return counter;
	}

	
	
	

	

}
